package com.softeem.str;

/**
 * 常用方法
 */
public class Str_02 {
    public static void main(String[] args) {
        //StringBuffer append(String str):将指定的字符串追加到当前的字符串序列
        StringBuffer buffer = new StringBuffer();
        buffer.append("haha");
        System.out.println(buffer.toString());

        char[] arr = {'h','e','h','e'};
        buffer.append(arr);

        buffer.append(3.14F);
        System.out.println(buffer.toString());

        //insert 想字符串中插入各种数据类型
        //StringBuffer insert(int offset,String str); 在指定的位置,插入str字符串
        StringBuffer buffer2 = new StringBuffer("123");
        buffer2.insert(2,"w");
        System.out.println(buffer2);//12w3
        buffer2.insert(4,"hehe");
        System.out.println(buffer2);//12w3hehe

        //delete 删除字符串中的数据
        //StringBuffer delete(int start, int end)
        //  删除此序列的子字符串中的字符。
        //StringBuffer deleteCharAt(int index)
        //  删除 char在这个序列中的指定位置。
        buffer2.delete(1,4);//包含开始的下标不包含结束的下标 [1,4) 半闭半开区间
        System.out.println(buffer2);//1hehe
        buffer2.deleteCharAt(0);
        System.out.println(buffer2);//hehe


        //replace setCharAt 替换字符串中的某些字符
        //StringBuffer replace(int start, int end, String str)
        //  用指定的String中的字符替换此序列的子字符串中的 String 。
        //void setCharAt(int index, char ch)
        //  指定索引处的字符设置为 ch 。
        buffer2.replace(1,3,"###");
        System.out.println(buffer2);
        buffer2.setCharAt(0,'A');
        System.out.println(buffer2);

        //将字符串反转
        //StringBuffer reverse()
        //导致该字符序列被序列的相反代替。
        buffer2.reverse();
        System.out.println(buffer2);

        //求子字符串
        //String substring(int start)
        //返回一个新的 String ，其中包含此字符序列中当前包含的字符的子序列。
        String newStr = buffer2.substring(1,3);
        System.out.println(buffer2);
        System.out.println(newStr);

        //setLength()方法
        //void setLength(int newLength)
        //设置字符序列的长度。
        System.out.println(buffer2.length());//5
        buffer2.setLength(10);//如果设置的长度 > 原始的内容长度 则使用空格作为占位符达到要求的长度
        System.out.println(buffer2.length());//1
        System.out.println(buffer2);//e
        buffer2.append("玛卡巴卡");
        System.out.println(buffer2);//e###A     玛卡巴卡


        //方法的链式调用
        StringBuffer buffer3 = new StringBuffer();
        buffer3.append("hahaha").append("hehehe").reverse().append("123");
        System.out.println(buffer3);
    }
}
